<template>
  <div class="article-page">
    <div
      class="article-item" 
      v-for="item in articles" 
      :key="item.id"
      @click="$router.push(`/detail/${item.id}`)"
      >
      <div class="head">
        <img :src="item.creatorAvatar" alt="" />
        <div class="con">
          <p class="title">{{item.stem}}</p>
          <p class="other">{{item.creatorName}} | {{ item.createdAt }}</p>
        </div>
      </div>
      <div class="body">
        {{ item.content }}
      </div>
      <div class="foot">点赞 {{item.likeCount}} | 浏览 {{item.views}}</div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'ArticlePage',
  data(){
    return {
      articles:[]
    }
  },
  // $data, $el => 访问不了 
  async created(){
    // 可以操作data了，但是还没有挂载，不能操作dom元素
    const api = 'https://mock.boxuegu.com/mock/3083/articles'
    // 每一个组件都是Vue的实例，this可以访问Vue原型上的数据
    const { data } = await this.$axios.get(api)
    // console.log(res)
    this.articles = data.result.rows
    console.log(this.articles)

   console.log('组件实例初始化完成，created')
  },
  mounted(){
    // 可以操作dom元素了

  },
  // mounted:{},
  beforeDestroy(){
    // 可以销毁一些全局事件了 或者定时器了
    console.log('组件将要被销毁')
  }
};
</script>
<style lang="less" scoped>
.article-page {
  background: #f5f5f5;
}
.article-item {
  margin-bottom: 10px;
  background: #fff;
  padding: 10px 15px;
  .head {
    display: flex;
    img {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
    .con {
      flex: 1;
      overflow: hidden;
      padding-left: 15px;
      p {
        margin: 0;
        line-height: 1.5;
        &.title {
          text-overflow: ellipsis;
          overflow: hidden;
          width: 100%;
          white-space: nowrap;
        }
        &.other {
          font-size: 10px;
          color: #999;
        }
      }
    }
  }
  .body {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .foot {
    font-size: 12px;
    color: #999;
    margin-top: 10px;
  }
}
</style>